home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / Visual Cafe Pro v1.0 / TUTORIAL.BIN / WrappingLabel.class (.txt) < prev    next >
Encoding:
Java Class File  |  1996-12-16  |  2.5 KB  |  135 lines

  1. package symantec.itools.awt;
  2.  
  3. import java.awt.Canvas;
  4. import java.awt.Component;
  5. import java.awt.Dimension;
  6. import java.awt.FontMetrics;
  7. import java.awt.Graphics;
  8.  
  9. public class WrappingLabel extends Canvas implements AlignStyle {
  10.    protected String text;
  11.    protected int align;
  12.    protected int baseline;
  13.    // $FF: renamed from: fm java.awt.FontMetrics
  14.    protected FontMetrics field_0;
  15.  
  16.    public WrappingLabel() {
  17.       this("");
  18.    }
  19.  
  20.    public WrappingLabel(String var1) {
  21.       this(var1, 0);
  22.    }
  23.  
  24.    public WrappingLabel(String var1, int var2) {
  25.       this.setText(var1);
  26.       this.setAlignStyle(var2);
  27.    }
  28.  
  29.    public int getAlignStyle() {
  30.       return this.align;
  31.    }
  32.  
  33.    public void setAlignStyle(int var1) {
  34.       this.align = var1;
  35.       ((Component)this).invalidate();
  36.    }
  37.  
  38.    public String getText() {
  39.       return this.text;
  40.    }
  41.  
  42.    public void setText(String var1) {
  43.       this.text = var1;
  44.       ((Component)this).repaint();
  45.    }
  46.  
  47.    public String paramString() {
  48.       return "";
  49.    }
  50.  
  51.    public void paint(Graphics var1) {
  52.       if (this.text != null) {
  53.          int var7 = 0;
  54.          int var8 = 0;
  55.          this.field_0 = ((Component)this).getToolkit().getFontMetrics(((Component)this).getFont());
  56.          this.baseline = this.field_0.getMaxAscent();
  57.          Dimension var6 = ((Component)this).size();
  58.          int var4 = var6.width;
  59.          int var5 = var6.height;
  60.          byte var2 = 0;
  61.  
  62.          for(int var3 = 0; var3 + this.field_0.getHeight() <= var5 && var7 != -1; var3 += this.field_0.getHeight()) {
  63.             while(var7 < this.text.length() && this.text.charAt(var7) == ' ') {
  64.                ++var7;
  65.                if (var7 >= this.text.length()) {
  66.                   break;
  67.                }
  68.             }
  69.  
  70.             var8 = var7;
  71.             int var9 = -1;
  72.  
  73.             String var10;
  74.             for(var10 = null; var8 >= var7; ++var8) {
  75.                var8 = this.text.indexOf(32, var8);
  76.                String var11;
  77.                if (var8 == -1) {
  78.                   var11 = this.text.substring(var7);
  79.                } else {
  80.                   var11 = this.text.substring(var7, var8);
  81.                }
  82.  
  83.                if (this.field_0.stringWidth(var11) >= var4) {
  84.                   break;
  85.                }
  86.  
  87.                var10 = var11;
  88.                var9 = var8;
  89.                if (var8 == -1) {
  90.                   break;
  91.                }
  92.             }
  93.  
  94.             if (var10 != null) {
  95.                this.drawAlignedString(var1, var10, var2, var3, var4);
  96.                var7 = var9;
  97.             } else {
  98.                int var12 = 0;
  99.                int var13 = 0;
  100.  
  101.                for(var8 = var7; var8 < this.text.length(); ++var8) {
  102.                   var13 = this.field_0.charWidth(this.text.charAt(var8));
  103.                   if (var12 + var13 >= var4) {
  104.                      break;
  105.                   }
  106.  
  107.                   var12 += var13;
  108.                }
  109.  
  110.                this.drawAlignedString(var1, this.text.substring(var7, var8), var2, var3, var4);
  111.                var7 = var8;
  112.             }
  113.          }
  114.  
  115.          this.field_0 = null;
  116.       }
  117.  
  118.    }
  119.  
  120.    protected void drawAlignedString(Graphics var1, String var2, int var3, int var4, int var5) {
  121.       int var6 = var3;
  122.       int var7 = var4 + this.baseline;
  123.       if (this.align != 0) {
  124.          int var8 = this.field_0.stringWidth(var2);
  125.          if (this.align == 1) {
  126.             var6 = var3 + (var5 - var8) / 2;
  127.          } else if (this.align == 2) {
  128.             var6 = var3 + var5 - var8;
  129.          }
  130.       }
  131.  
  132.       var1.drawString(var2, var6, var7);
  133.    }
  134. }
  135.